home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 1999 August / SGI Freeware 1999 August.iso / dist / fw_gsl.idb / usr / freeware / include / gsl_blas.h.z / gsl_blas.h
Encoding:
C/C++ Source or Header  |  1999-07-16  |  28.7 KB  |  809 lines

  1. /*
  2.  * Author:  G. Jungman
  3.  * RCS:     $Id: gsl_blas.h,v 1.8 1998/07/29 22:00:37 jungman Exp $
  4.  */
  5. #ifndef GSL_BLAS_H_
  6. #define GSL_BLAS_H_
  7.  
  8. #include <gsl_vector.h>
  9. #include <gsl_matrix.h>
  10.  
  11.  
  12. /* ========================================================================
  13.  * Level 1
  14.  * ========================================================================
  15.  */
  16.  
  17. int gsl_blas_sdsdot (float alpha,
  18.                      const gsl_vector_float * X,
  19.                      const gsl_vector_float * Y,
  20.                      float * result
  21.                      );
  22.  
  23. int gsl_blas_dsdot (const gsl_vector_float * X,
  24.                     const gsl_vector_float * Y,
  25.                     double * result
  26.                     );
  27.  
  28. int gsl_blas_sdot (const gsl_vector_float * X,
  29.                    const gsl_vector_float * Y,
  30.            float * result
  31.            );
  32.  
  33. int gsl_blas_ddot (const gsl_vector * X,
  34.                    const gsl_vector * Y,
  35.            double * result
  36.            );
  37.  
  38.  
  39. int  gsl_blas_cdotu (const gsl_vector_complex_float * X,
  40.                      const gsl_vector_complex_float * Y,
  41.                      gsl_complex_float * dotu);
  42.  
  43. int  gsl_blas_cdotc (const gsl_vector_complex_float * X,
  44.                      const gsl_vector_complex_float * Y,
  45.                      gsl_complex_float * dotc);
  46.  
  47. int  gsl_blas_zdotu (const gsl_vector_complex * X,
  48.                      const gsl_vector_complex * Y,
  49.                      gsl_complex * dotu);
  50.  
  51. int  gsl_blas_zdotc (const gsl_vector_complex * X,
  52.                      const gsl_vector_complex * Y,
  53.                      gsl_complex * dotc);
  54.  
  55.  
  56. float  gsl_blas_snrm2  (const gsl_vector_float * X);
  57. float  gsl_blas_sasum  (const gsl_vector_float * X);
  58. double gsl_blas_dnrm2  (const gsl_vector * X);
  59. double gsl_blas_dasum  (const gsl_vector * X);
  60. float  gsl_blas_scnrm2 (const gsl_vector_complex_float * X);
  61. float  gsl_blas_scasum (const gsl_vector_complex_float * X);
  62. double gsl_blas_dznrm2 (const gsl_vector_complex * X);
  63. double gsl_blas_dzasum (const gsl_vector_complex * X);
  64.  
  65.  
  66. CBLAS_INDEX gsl_blas_isamax (const gsl_vector_float * X);
  67. CBLAS_INDEX gsl_blas_idamax (const gsl_vector * X);
  68. CBLAS_INDEX gsl_blas_icamax (const gsl_vector_complex_float * X);
  69. CBLAS_INDEX gsl_blas_izamax (const gsl_vector_complex * X);
  70.  
  71.  
  72. int  gsl_blas_sswap (gsl_vector_float * X,
  73.                      gsl_vector_float * Y);
  74.  
  75. int  gsl_blas_scopy (const gsl_vector_float * X,
  76.                      gsl_vector_float * Y);
  77.  
  78. int  gsl_blas_saxpy (float alpha,
  79.                      const gsl_vector_float * X,
  80.                      gsl_vector_float * Y);
  81.  
  82. int  gsl_blas_dswap (gsl_vector * X,
  83.                      gsl_vector * Y);
  84.  
  85. int  gsl_blas_dcopy (const gsl_vector * X,
  86.                      gsl_vector * Y);
  87.  
  88. int  gsl_blas_daxpy (double alpha,
  89.                      const gsl_vector * X,
  90.                      gsl_vector * Y);
  91.  
  92. int  gsl_blas_cswap (gsl_vector_complex_float * X,
  93.                      gsl_vector_complex_float * Y);
  94.  
  95. int  gsl_blas_ccopy (const gsl_vector_complex_float * X,
  96.                      gsl_vector_complex_float * Y);
  97.  
  98. int  gsl_blas_caxpy (const gsl_complex_float * alpha,
  99.                      const gsl_vector_complex_float * X,
  100.                      gsl_vector_complex_float * Y);
  101.  
  102. int  gsl_blas_zswap (gsl_vector_complex * X,
  103.                      gsl_vector_complex * Y);
  104.  
  105. int  gsl_blas_zcopy (const gsl_vector_complex * X,
  106.                      gsl_vector_complex * Y);
  107.  
  108. int  gsl_blas_zaxpy (const gsl_complex * alpha,
  109.                      const gsl_vector_complex * X,
  110.                      gsl_vector_complex * Y);
  111.  
  112.  
  113. int  gsl_blas_srotg (float a[], float b[], float c[], float s[]);
  114.  
  115. int  gsl_blas_srotmg (float d1[], float d2[], float b1[], float b2, float P[]);
  116.  
  117. int  gsl_blas_srot (gsl_vector_float * X,
  118.                     gsl_vector_float * Y,
  119.                     float c, float s);
  120.  
  121. int  gsl_blas_srotm (gsl_vector_float * X,
  122.                      gsl_vector_float * Y,
  123.                      const float P[]);
  124.  
  125. int  gsl_blas_drotg (double a[], double b[], double c[], double s[]);
  126.  
  127. int  gsl_blas_drotmg (double d1[], double d2[], double b1[],
  128.                       double b2, double P[]);
  129.  
  130. int  gsl_blas_drot (gsl_vector * X,
  131.                     gsl_vector * Y,
  132.                     const double c, const double s);
  133.  
  134. int  gsl_blas_drotm (gsl_vector * X,
  135.                      gsl_vector * Y,
  136.                      const double P[]);
  137.  
  138.  
  139. void gsl_blas_sscal  (float  alpha, gsl_vector_float * X);
  140. void gsl_blas_dscal  (double alpha, gsl_vector * X);
  141. void gsl_blas_cscal  (const gsl_complex_float * alpha, gsl_vector_complex_float * X);
  142. void gsl_blas_zscal  (const gsl_complex * alpha, gsl_vector_complex * X);
  143. void gsl_blas_csscal (float  alpha, gsl_vector_complex_float * X);
  144. void gsl_blas_zdscal (double alpha, gsl_vector_complex * X);
  145.  
  146.  
  147.  
  148. /* ===========================================================================
  149.  * Level 2
  150.  * ===========================================================================
  151.  */
  152.  
  153. /*
  154.  * Routines with standard 4 prefixes (S, D, C, Z)
  155.  */
  156. int  gsl_blas_sgemv (CBLAS_TRANSPOSE TransA,
  157.                      float alpha,
  158.                      const gsl_matrix_float * A,
  159.                      const gsl_vector_float * X,
  160.                      float beta,
  161.                      gsl_vector_float * Y);
  162.  
  163. int  gsl_blas_sgbmv (CBLAS_TRANSPOSE TransA,
  164.                      int KL, int KU,
  165.              float alpha,
  166.                      const gsl_matrix_float * A,
  167.                      const gsl_vector_float * X,
  168.                      float beta,
  169.                      gsl_vector_float * Y);
  170.  
  171. int  gsl_blas_strmv (CBLAS_UPLO Uplo,
  172.                      CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
  173.                      const gsl_matrix_float * A,
  174.                      gsl_vector_float * X);
  175.  
  176. int  gsl_blas_stbmv (CBLAS_UPLO Uplo,
  177.                      CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
  178.                      int K,
  179.                      const gsl_matrix_float * A,
  180.                      gsl_vector_float * X);
  181.  
  182. int  gsl_blas_stpmv (CBLAS_UPLO Uplo,
  183.                      CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
  184.                      const float Ap[],
  185.                      gsl_vector_float * X);
  186.  
  187. int  gsl_blas_strsv (CBLAS_UPLO Uplo,
  188.                      CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
  189.                      const gsl_matrix_float * A,
  190.                      gsl_vector_float * X);
  191.  
  192. int  gsl_blas_stbsv (CBLAS_UPLO Uplo,
  193.                      CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
  194.                      int K,
  195.                      const gsl_matrix_float * A,
  196.                      gsl_vector_float * X);
  197.  
  198. int  gsl_blas_stpsv (CBLAS_UPLO Uplo,
  199.                      CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
  200.                      const float Ap[],
  201.                      gsl_vector_float * X);
  202.  
  203. int  gsl_blas_dgemv (CBLAS_TRANSPOSE TransA,
  204.                      double alpha,
  205.                      const gsl_matrix * A,
  206.                      const gsl_vector * X,
  207.                      double beta,
  208.                      gsl_vector * Y);
  209.  
  210. int  gsl_blas_dgbmv (CBLAS_TRANSPOSE TransA,
  211.                      int KL, int KU,
  212.                      double alpha,
  213.                      const gsl_matrix * A,
  214.                      const gsl_vector * X,
  215.                      double beta,
  216.                      gsl_vector * Y);
  217.  
  218. int  gsl_blas_dtrmv (CBLAS_UPLO Uplo,
  219.                      CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
  220.                      const gsl_matrix * A,
  221.                      gsl_vector * X);
  222.  
  223. int  gsl_blas_dtbmv (CBLAS_UPLO Uplo,
  224.                      CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
  225.                      int K,
  226.                      const gsl_matrix * A,
  227.                      gsl_vector * X);
  228.  
  229. int  gsl_blas_dtpmv (CBLAS_UPLO Uplo,
  230.                      CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
  231.                      const double Ap[],
  232.                      gsl_vector * X);
  233.  
  234. int  gsl_blas_dtrsv (CBLAS_UPLO Uplo,
  235.                      CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
  236.                      const gsl_matrix * A,
  237.                      gsl_vector * X);
  238.  
  239. int  gsl_blas_dtbsv (CBLAS_UPLO Uplo,
  240.                      CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
  241.                      int K,
  242.                      const gsl_matrix * A,
  243.                      gsl_vector * X);
  244.  
  245. int  gsl_blas_dtpsv (CBLAS_UPLO Uplo,
  246.                      CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
  247.                      const double Ap[],
  248.                      gsl_vector * X);
  249.  
  250. int  gsl_blas_cgemv (CBLAS_TRANSPOSE TransA,
  251.                      const gsl_complex_float * alpha,
  252.                      const gsl_matrix_complex_float * A,
  253.                      const gsl_vector_complex_float * X,
  254.                      const gsl_complex_float * beta,
  255.                      gsl_vector_complex_float * Y);
  256.  
  257. int  gsl_blas_cgbmv (CBLAS_TRANSPOSE TransA,
  258.                      int KL, int KU,
  259.                      const gsl_complex_float * alpha,
  260.                      const gsl_matrix_complex_float * A,
  261.                      const gsl_vector_complex_float * X,
  262.                      const gsl_complex_float * beta,
  263.                      gsl_vector_complex_float * Y);
  264.  
  265. int  gsl_blas_ctrmv (CBLAS_UPLO Uplo,
  266.                      CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
  267.                      const gsl_matrix_complex_float * A,
  268.                      gsl_vector_complex_float * X);
  269.  
  270. int  gsl_blas_ctbmv (CBLAS_UPLO Uplo,
  271.                      CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
  272.                      int K,
  273.                      const gsl_matrix_complex_float * A,
  274.                      gsl_vector_complex_float * X);
  275.  
  276. int  gsl_blas_ctpmv (CBLAS_UPLO Uplo,
  277.                      CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
  278.                      const void * Ap,
  279.                      gsl_vector_complex_float * X);
  280.  
  281. int  gsl_blas_ctrsv (CBLAS_UPLO Uplo,
  282.                      CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
  283.                      const gsl_matrix_complex_float * A,
  284.                      gsl_vector_complex_float * X);
  285.  
  286. int  gsl_blas_ctbsv (CBLAS_UPLO Uplo,
  287.                      CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
  288.                      int K,
  289.                      const gsl_matrix_complex_float * A,
  290.                      gsl_vector_complex_float * X);
  291.  
  292. int  gsl_blas_ctpsv (CBLAS_UPLO Uplo,
  293.                      CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
  294.                      const void * Ap,
  295.                      gsl_vector_complex_float * X);
  296.  
  297. int  gsl_blas_zgemv (CBLAS_TRANSPOSE TransA,
  298.                      const gsl_complex * alpha,
  299.                      const gsl_matrix_complex * A,
  300.                      const gsl_vector_complex * X,
  301.                      const gsl_complex * beta,
  302.                      gsl_vector_complex * Y);
  303.  
  304. int  gsl_blas_zgbmv (CBLAS_TRANSPOSE TransA,
  305.                      int KL, int KU,
  306.                      const gsl_complex * alpha,
  307.                      const gsl_matrix_complex * A,
  308.                      const gsl_vector_complex * X,
  309.                      const gsl_complex * beta,
  310.                      gsl_vector_complex * Y);
  311.  
  312. int  gsl_blas_ztrmv (CBLAS_UPLO Uplo,
  313.                      CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
  314.                      const gsl_matrix_complex * A,
  315.                      gsl_vector_complex * X);
  316.  
  317. int  gsl_blas_ztbmv (CBLAS_UPLO Uplo,
  318.                      CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
  319.                      int K,
  320.                      const gsl_matrix_complex * A,
  321.                      gsl_vector_complex * X);
  322.  
  323. int  gsl_blas_ztpmv (CBLAS_UPLO Uplo,
  324.                      CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
  325.                      const void *Ap,
  326.                      gsl_vector_complex * X);
  327.  
  328. int  gsl_blas_ztrsv (CBLAS_UPLO Uplo,
  329.                      CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
  330.                      const gsl_matrix_complex * A,
  331.                      gsl_vector_complex *X);
  332.  
  333. int  gsl_blas_ztbsv (CBLAS_UPLO Uplo,
  334.                      CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
  335.                      int K,
  336.                      const gsl_matrix_complex * A,
  337.                      gsl_vector_complex * X);
  338.  
  339. int  gsl_blas_ztpsv (CBLAS_UPLO Uplo,
  340.                      CBLAS_TRANSPOSE TransA, CBLAS_DIAG Diag,
  341.                      const void *Ap,
  342.                      gsl_vector_complex * X);
  343.  
  344. /*
  345.  * Routines with S and D prefixes only
  346.  */
  347. int  gsl_blas_ssymv (CBLAS_UPLO Uplo,
  348.                      float alpha,
  349.                      const gsl_matrix_float * A,
  350.                      const gsl_vector_float * X,
  351.                      float beta,
  352.                      gsl_vector_float * Y);
  353.  
  354. int  gsl_blas_ssbmv (CBLAS_UPLO Uplo,
  355.                      int K,
  356.                      float alpha,
  357.                      const gsl_matrix_float * A,
  358.                      const gsl_vector_float * X,
  359.                      float beta,
  360.                      gsl_vector_float * Y);
  361.  
  362. int  gsl_blas_sspmv (CBLAS_UPLO Uplo,
  363.                      float alpha,
  364.                      const float Ap[],
  365.                      const gsl_vector_float * X,
  366.                      float beta,
  367.                      gsl_vector_float * Y);
  368.  
  369. int  gsl_blas_sger (float alpha,
  370.                     const gsl_vector_float * X,
  371.                     const gsl_vector_float * Y,
  372.                     gsl_matrix_float * A);
  373.  
  374. int  gsl_blas_ssyr (CBLAS_UPLO Uplo,
  375.                     float alpha,
  376.                     const gsl_vector_float * X,
  377.                     gsl_matrix_float * A);
  378.  
  379. int  gsl_blas_sspr (CBLAS_UPLO Uplo,
  380.                     float alpha,
  381.                     const gsl_vector_float * X,
  382.                     float Ap[]);
  383.  
  384. int  gsl_blas_ssyr2 (CBLAS_UPLO Uplo,
  385.                      float alpha,
  386.                      const gsl_vector_float * X,
  387.                      const gsl_vector_float * Y,
  388.                      gsl_matrix_float * A);
  389.  
  390. int  gsl_blas_sspr2 (CBLAS_UPLO Uplo,
  391.                      float alpha,
  392.                      const gsl_vector_float * X,
  393.                      const gsl_vector_float * Y,
  394.                      gsl_vector_float * A);
  395.  
  396. int  gsl_blas_dsymv (CBLAS_UPLO Uplo,
  397.                      double alpha,
  398.                      const gsl_matrix * A,
  399.                      const gsl_vector * X,
  400.                      double beta,
  401.                      gsl_vector * Y);
  402.  
  403. int  gsl_blas_dsbmv (CBLAS_UPLO Uplo,
  404.                      int K,
  405.                      double alpha,
  406.                      const gsl_matrix * A,
  407.                      const gsl_vector * X,
  408.                      double beta,
  409.                      gsl_vector * Y);
  410.  
  411. int  gsl_blas_dspmv (CBLAS_UPLO Uplo,
  412.                      double alpha,
  413.                      const double Ap[],
  414.                      const gsl_vector * X,
  415.                      double beta,
  416.                      gsl_vector * Y);
  417.  
  418. int  gsl_blas_dger (double alpha,
  419.                     const gsl_vector * X,
  420.                     const gsl_vector * Y,
  421.                     gsl_matrix * A);
  422.  
  423. int  gsl_blas_dsyr (CBLAS_UPLO Uplo,
  424.                     double alpha,
  425.                     const gsl_vector * X,
  426.                     gsl_matrix * A);
  427.  
  428. int  gsl_blas_dspr (CBLAS_UPLO Uplo,
  429.                     double alpha,
  430.                     const gsl_vector * X,
  431.                     double Ap[]);
  432.  
  433. int  gsl_blas_dsyr2 (CBLAS_UPLO Uplo,
  434.                      double alpha,
  435.                      const gsl_vector * X,
  436.                      const gsl_vector * Y,
  437.                      gsl_matrix * A);
  438.  
  439. int  gsl_blas_dspr2 (CBLAS_UPLO Uplo,
  440.                      double alpha,
  441.                      const gsl_vector * X,
  442.                      const gsl_vector * Y,
  443.                      double Ap[]);
  444.  
  445. /*
  446.  * Routines with C and Z prefixes only
  447.  */
  448. int  gsl_blas_chemv (CBLAS_UPLO Uplo,
  449.                      const gsl_complex_float * alpha,
  450.                      const gsl_matrix_complex_float * A,
  451.                      const gsl_vector_complex_float * X,
  452.                      const gsl_complex_float * beta,
  453.                      gsl_vector_complex_float * Y);
  454.  
  455. int  gsl_blas_chbmv (CBLAS_UPLO Uplo,
  456.                      int K,
  457.                      const gsl_complex_float * alpha,
  458.                      const gsl_matrix_complex_float * A,
  459.                      const gsl_vector_complex_float * X,
  460.                      const gsl_complex_float * beta,
  461.                      gsl_vector_complex_float * Y);
  462.  
  463. int  gsl_blas_chpmv (CBLAS_UPLO Uplo,
  464.                      const gsl_complex_float * alpha,
  465.              const void * Ap,
  466.                      const gsl_vector_complex_float * X,
  467.                      const gsl_complex_float * beta,
  468.                      gsl_vector_complex_float * Y);
  469.  
  470. int  gsl_blas_cgeru (const gsl_complex_float * alpha,
  471.                      const gsl_vector_complex_float * X,
  472.                      const gsl_vector_complex_float * Y,
  473.                      gsl_matrix_complex_float * A);
  474.  
  475. int  gsl_blas_cgerc (const gsl_complex_float * alpha,
  476.                      const gsl_vector_complex_float * X,
  477.                      const gsl_vector_complex_float * Y,
  478.                      gsl_matrix_complex_float * A);
  479.  
  480. int  gsl_blas_cher (CBLAS_UPLO Uplo,
  481.                     float alpha,
  482.                     const gsl_vector_complex_float * X,
  483.                     gsl_matrix_complex_float * A);
  484.  
  485. int  gsl_blas_chpr (CBLAS_UPLO Uplo,
  486.                     float alpha,
  487.                     const gsl_vector_complex_float * X,
  488.                     void * Ap);
  489.  
  490. int  gsl_blas_cher2 (CBLAS_UPLO Uplo,
  491.                      const gsl_complex_float * alpha,
  492.                      const gsl_vector_complex_float * X,
  493.                      const gsl_vector_complex_float * Y,
  494.                      gsl_matrix_complex_float * A);
  495.  
  496. int  gsl_blas_chpr2 (CBLAS_UPLO Uplo,
  497.                      const gsl_complex_float * alpha,
  498.                      const gsl_vector_complex_float * X,
  499.                      const gsl_vector_complex_float * Y,
  500.                      void * Ap);
  501.  
  502. int  gsl_blas_zhemv (CBLAS_UPLO Uplo,
  503.                      const gsl_complex * alpha,
  504.                      const gsl_matrix_complex * A,
  505.                      const gsl_vector_complex * X,
  506.                      const gsl_complex * beta,
  507.                      gsl_vector_complex * Y);
  508.  
  509. int  gsl_blas_zhbmv (CBLAS_UPLO Uplo,
  510.                      int K,
  511.                      const gsl_complex * alpha,
  512.                      const gsl_matrix_complex * A,
  513.                      const gsl_vector_complex * X,
  514.                      const gsl_complex * beta,
  515.                      gsl_vector_complex * Y);
  516.  
  517. int  gsl_blas_zhpmv (CBLAS_UPLO Uplo,
  518.                      const gsl_complex * alpha,
  519.                      const void * Ap,
  520.                      const gsl_vector_complex * X,
  521.                      const gsl_complex * beta,
  522.                      gsl_vector_complex * Y);
  523.  
  524. int  gsl_blas_zgeru (const gsl_complex * alpha,
  525.                      const gsl_vector_complex * X,
  526.                      const gsl_vector_complex * Y,
  527.                      gsl_matrix_complex * A);
  528.  
  529. int  gsl_blas_zgerc (const gsl_complex * alpha,
  530.                      const gsl_vector_complex * X,
  531.                      const gsl_vector_complex * Y,
  532.                      gsl_matrix_complex * A);
  533.  
  534. int  gsl_blas_zher (CBLAS_UPLO Uplo,
  535.                     double alpha,
  536.                     const gsl_vector_complex * X,
  537.                     gsl_matrix_complex * A);
  538.  
  539. int  gsl_blas_zhpr (CBLAS_UPLO Uplo,
  540.                     double alpha,
  541.                     const gsl_vector_complex * X,
  542.                     void * Ap);
  543.  
  544. int  gsl_blas_zher2 (CBLAS_UPLO Uplo,
  545.                      const gsl_complex * alpha,
  546.                      const gsl_vector_complex * X,
  547.                      const gsl_vector_complex * Y,
  548.                      gsl_matrix_complex * A);
  549.  
  550. int  gsl_blas_zhpr2 (CBLAS_UPLO Uplo,
  551.                      const gsl_complex * alpha,
  552.                      const gsl_vector_complex * X,
  553.                      const gsl_vector_complex * Y,
  554.                      void *Ap);
  555.  
  556. /*
  557.  * ===========================================================================
  558.  * Prototypes for level 3 BLAS
  559.  * ===========================================================================
  560.  */
  561.  
  562. /*
  563.  * Routines with standard 4 prefixes (S, D, C, Z)
  564.  */
  565. int  gsl_blas_sgemm (CBLAS_TRANSPOSE TransA,
  566.                      CBLAS_TRANSPOSE TransB,
  567.                      int K,
  568.                      float alpha,
  569.                      const gsl_matrix_float * A,
  570.                      const gsl_matrix_float * B,
  571.                      float beta,
  572.                      gsl_matrix_float * C);
  573.  
  574. int  gsl_blas_ssymm (CBLAS_SIDE Side, CBLAS_UPLO Uplo,
  575.                      float alpha,
  576.                      const gsl_matrix_float * A,
  577.                      const gsl_matrix_float * B,
  578.                      float beta,
  579.                      gsl_matrix_float * C);
  580.  
  581. int  gsl_blas_ssyrk (CBLAS_UPLO Uplo, CBLAS_TRANSPOSE Trans,
  582.                      int K,
  583.                      float alpha,
  584.                      const gsl_matrix_float * A,
  585.                      float beta,
  586.                      gsl_matrix_float * C);
  587.  
  588. int  gsl_blas_ssyr2k (CBLAS_UPLO Uplo, CBLAS_TRANSPOSE Trans,
  589.                       int K,
  590.                       float alpha,
  591.                       const gsl_matrix_float * A,
  592.                       const gsl_matrix_float * B,
  593.                       float beta,
  594.                       gsl_matrix_float * C);
  595.  
  596. int  gsl_blas_strmm (CBLAS_SIDE Side,
  597.                      CBLAS_UPLO Uplo, CBLAS_TRANSPOSE TransA,
  598.                      CBLAS_DIAG Diag,
  599.                      float alpha,
  600.                      const gsl_matrix_float * A,
  601.                      gsl_matrix_float * B);
  602.  
  603. int  gsl_blas_strsm (CBLAS_SIDE Side,
  604.                      CBLAS_UPLO Uplo, CBLAS_TRANSPOSE TransA,
  605.                      CBLAS_DIAG Diag,
  606.                      float alpha,
  607.                      const gsl_matrix_float * A,
  608.                      gsl_matrix_float * B);
  609.  
  610. int  gsl_blas_dgemm (CBLAS_TRANSPOSE TransA,
  611.                      CBLAS_TRANSPOSE TransB,
  612.                      int K,
  613.                      double alpha,
  614.                      const gsl_matrix * A,
  615.                      const gsl_matrix * B,
  616.                      double beta,
  617.                      gsl_matrix * C);
  618.  
  619. int  gsl_blas_dsymm (CBLAS_SIDE Side,
  620.                      CBLAS_UPLO Uplo,
  621.                      double alpha,
  622.                      const gsl_matrix * A,
  623.                      const gsl_matrix * B,
  624.                      double beta,
  625.                      gsl_matrix * C);
  626.  
  627. int  gsl_blas_dsyrk (CBLAS_UPLO Uplo,
  628.                      CBLAS_TRANSPOSE Trans,
  629.                      int K,
  630.                      double alpha,
  631.                      const gsl_matrix * A,
  632.                      double beta,
  633.                      gsl_matrix * C);
  634.  
  635. int  gsl_blas_dsyr2k (CBLAS_UPLO Uplo,
  636.                       CBLAS_TRANSPOSE Trans,
  637.                       int K,
  638.                       double alpha,
  639.                       const  gsl_matrix * A,
  640.                       const  gsl_matrix * B,
  641.                       double beta,
  642.                       gsl_matrix * C);
  643.  
  644. int  gsl_blas_dtrmm (CBLAS_SIDE Side,
  645.                      CBLAS_UPLO Uplo, CBLAS_TRANSPOSE TransA,
  646.                      CBLAS_DIAG Diag,
  647.                      double alpha,
  648.                      const gsl_matrix * A,
  649.                      gsl_matrix * B);
  650.  
  651. int  gsl_blas_dtrsm (CBLAS_SIDE Side,
  652.                      CBLAS_UPLO Uplo, CBLAS_TRANSPOSE TransA,
  653.                      CBLAS_DIAG Diag,
  654.                      double alpha,
  655.                      const gsl_matrix * A,
  656.                      gsl_matrix * B);
  657.  
  658. int  gsl_blas_cgemm (CBLAS_TRANSPOSE TransA,
  659.                      CBLAS_TRANSPOSE TransB,
  660.                      int K,
  661.                      const gsl_complex_float * alpha,
  662.                      const gsl_matrix_complex_float * A,
  663.                      const gsl_matrix_complex_float * B,
  664.                      const gsl_complex_float * beta,
  665.                      gsl_matrix_complex_float * C);
  666.  
  667. int  gsl_blas_csymm (CBLAS_SIDE Side,
  668.                      CBLAS_UPLO Uplo,
  669.                      const gsl_complex_float * alpha,
  670.                      const gsl_matrix_complex_float * A,
  671.                      const gsl_matrix_complex_float * B,
  672.                      const gsl_complex_float * beta,
  673.                      gsl_matrix_complex_float * C);
  674.  
  675. int  gsl_blas_csyrk (CBLAS_UPLO Uplo,
  676.                      CBLAS_TRANSPOSE Trans,
  677.                      int K,
  678.                      const gsl_complex_float * alpha,
  679.                      const gsl_matrix_complex_float * A,
  680.                      const gsl_complex_float * beta,
  681.                      gsl_matrix_complex_float * C);
  682.  
  683. int  gsl_blas_csyr2k (CBLAS_UPLO Uplo,
  684.                       CBLAS_TRANSPOSE Trans,
  685.                       int K,
  686.                       const gsl_complex_float * alpha,
  687.                       const gsl_matrix_complex_float * A,
  688.                       const gsl_matrix_complex_float * B,
  689.                       const gsl_complex_float * beta,
  690.                       gsl_matrix_complex_float * C);
  691.  
  692. int  gsl_blas_ctrmm (CBLAS_SIDE Side,
  693.                      CBLAS_UPLO Uplo, CBLAS_TRANSPOSE TransA,
  694.                      CBLAS_DIAG Diag,
  695.                      const gsl_complex_float * alpha,
  696.                      const gsl_matrix_complex_float * A,
  697.                      gsl_matrix_complex_float * B);
  698.  
  699. int  gsl_blas_ctrsm (CBLAS_SIDE Side,
  700.                      CBLAS_UPLO Uplo, CBLAS_TRANSPOSE TransA,
  701.                      CBLAS_DIAG Diag,
  702.                      const gsl_complex_float * alpha,
  703.                      const gsl_matrix_complex_float * A,
  704.                      gsl_matrix_complex_float * B);
  705.  
  706. int  gsl_blas_zgemm (CBLAS_TRANSPOSE TransA,
  707.                      CBLAS_TRANSPOSE TransB,
  708.                      int K,
  709.                      const gsl_complex * alpha,
  710.                      const gsl_matrix_complex * A,
  711.                      const gsl_matrix_complex * B,
  712.                      const gsl_complex * beta,
  713.                      gsl_matrix_complex * C);
  714.  
  715. int  gsl_blas_zsymm (CBLAS_SIDE Side,
  716.                      CBLAS_UPLO Uplo,
  717.                      const gsl_complex * alpha,
  718.                      const gsl_matrix_complex * A,
  719.                      const gsl_matrix_complex * B,
  720.                      const gsl_complex * beta,
  721.                      gsl_matrix_complex * C);
  722.  
  723. int  gsl_blas_zsyrk (CBLAS_UPLO Uplo,
  724.                      CBLAS_TRANSPOSE Trans,
  725.                      int K,
  726.                      const gsl_complex * alpha,
  727.                      const gsl_matrix_complex * A,
  728.                      const gsl_complex * beta,
  729.                      gsl_matrix_complex * C);
  730.  
  731. int  gsl_blas_zsyr2k (CBLAS_UPLO Uplo,
  732.                       CBLAS_TRANSPOSE Trans,
  733.                       int K,
  734.                       const gsl_complex * alpha,
  735.                       const gsl_matrix_complex * A,
  736.                       const gsl_matrix_complex * B,
  737.                       const gsl_complex * beta,
  738.                       gsl_matrix_complex *C);
  739.  
  740. int  gsl_blas_ztrmm (CBLAS_SIDE Side,
  741.                      CBLAS_UPLO Uplo, CBLAS_TRANSPOSE TransA,
  742.                      CBLAS_DIAG Diag,
  743.                      const gsl_complex * alpha,
  744.                      const gsl_matrix_complex * A,
  745.                      gsl_matrix_complex * B);
  746.  
  747. int  gsl_blas_ztrsm (CBLAS_SIDE Side,
  748.                      CBLAS_UPLO Uplo, CBLAS_TRANSPOSE TransA,
  749.                      CBLAS_DIAG Diag,
  750.                      const gsl_complex * alpha,
  751.                      const gsl_matrix_complex * A,
  752.                      gsl_matrix_complex * B);
  753.  
  754. /*
  755.  * Routines with prefixes C and Z only
  756.  */
  757. int  gsl_blas_chemm (CBLAS_SIDE Side,
  758.                      CBLAS_UPLO Uplo,
  759.                      const gsl_complex_float * alpha,
  760.                      const gsl_matrix_complex_float * A,
  761.                      const gsl_matrix_complex_float * B,
  762.                      const gsl_complex_float * beta,
  763.                      gsl_matrix_complex_float * C);
  764.  
  765. int  gsl_blas_cherk (CBLAS_UPLO Uplo,
  766.                      CBLAS_TRANSPOSE Trans,
  767.                      int K,
  768.                      float alpha,
  769.                      const gsl_matrix_complex_float * A,
  770.                      float beta,
  771.                      gsl_matrix_complex_float * C);
  772.  
  773. int  gsl_blas_cher2k (CBLAS_UPLO Uplo,
  774.                       CBLAS_TRANSPOSE Trans,
  775.                       int K,
  776.                       const gsl_complex_float * alpha,
  777.                       const gsl_matrix_complex_float * A,
  778.                       const gsl_matrix_complex_float * B,
  779.                       float beta,
  780.                       gsl_matrix_complex_float * C);
  781.  
  782. int  gsl_blas_zhemm (CBLAS_SIDE Side,
  783.                      CBLAS_UPLO Uplo,
  784.                      const gsl_complex * alpha,
  785.                      const gsl_matrix_complex * A,
  786.                      const gsl_matrix_complex * B,
  787.                      const gsl_complex * beta,
  788.                      gsl_matrix_complex * C);
  789.  
  790. int  gsl_blas_zherk (CBLAS_UPLO Uplo,
  791.                      CBLAS_TRANSPOSE Trans,
  792.                      int K,
  793.                      double alpha,
  794.                      const gsl_matrix_complex * A,
  795.                      double beta,
  796.                      gsl_matrix_complex * C);
  797.  
  798. int  gsl_blas_zher2k (CBLAS_UPLO Uplo,
  799.                       CBLAS_TRANSPOSE Trans,
  800.                       int K,
  801.                       const gsl_complex * alpha,
  802.                       const gsl_matrix_complex * A,
  803.                       const gsl_matrix_complex * B,
  804.                       double beta,
  805.                       gsl_matrix_complex * C);
  806.  
  807.  
  808. #endif /* !GSL_BLAS_H_ */
  809.